package com.quectel.constant.sys;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

/**
 * @author: rananxin
 * @email: ryan.ran@quectel.com
 * @date: 2021/10/18 2:21 下午
 */
public class SysConstants {

    /**
     * 系统顶级租户编码 (租户编码在系统唯一)
     */
    public static final String SYS_TOP_TENANT_CODE = "Super_Tenant";

    /**
     * 租户顶级用户组编码 (组编码在租户内唯一)
     */
    public static final String SYS_TOP_GROUP_CODE = "Super_Group";

    /**
     * 根党组织 (组编码在租户内唯一)
     */
    public static final String ROOT_PARTY_ORG_CODE = "RootPartyOrg";

    /**
     * 租户顶级用户组名称，由系统管理员建立
     */
    public static final String SYS_TOP_GROUP_NAME = "顶级组织机构";

    /**
     * 租户党组织名称，由系统管理员建立
     */
    public static final String ROOT_PARTY_ORG_NAME = "根组织";

    /**
     * 组织机构权限类型枚举
     */
    @AllArgsConstructor
    public enum GroupAuthEnum {

        BY_TYPE((byte) 1, "按照类型"),
        BY_DEVICE((byte) 2, "按照设备"),
        BY_VILLAGE((byte) 3, "按照小区"),
        BY_REGION((byte) 4, "按照区域"),
        BY_BUILDING((byte) 5, "按照楼栋");
        @Getter
        @Setter
        private Byte type;
        @Getter
        @Setter
        private String desc;

    }

    /**
     * 区域等级分级枚举
     */
    @AllArgsConstructor
    public enum RegionLevelEnum {

        PROVINCE_LEVEL((byte) 1, "省"),
        CITY_LEVEL((byte) 2, "市"),
        DISTRICT_LEVEL((byte) 3, "区"),
        STREET_LEVEL((byte) 4, "街道");
        @Getter
        @Setter
        private Byte level;
        @Getter
        @Setter
        private String desc;

    }

}
